Development and Convergence of conventional computer technologies and network technologies, such as grid computing, distributed computing, parallel computing, utility computing network storage technologies, virtualization technologies, load balance technologies and the like, result in cloud computing. The cloud computing intends to integrate a plurality of relatively low cost computing entities over a network into a system having significant computing power. Distributed cache is an aspect of the cloud computing, and functions to provide distributed storage service for mass data and high-speed read and write capability.
Generally, a distributed cache system is composed of several server nodes (also known as serving node) and clients interconnected with each other. The server node is used to store data and the client may perform data manipulation on the server, such as writing, reading, updating, deleting and the like. Generally, the written data would not only be stored in a single server node. Instead, copies of the data file may be stored in a plurality of nodes for backup. Each of the copies comprises one or more data records composed of Keys and Values, a Key serves as an index to the data and a Value is data content represented by the Key. Logically, there is a one-to-one correspondence between the Keys and the Values. Attribute information, such as a version number, a timestamp and the like is added to each data record when the data record is actually stored, so as to ensure consistency of the data stored in the distributed cache system. The attribute information is stored in the data records of the copy. In a distributed cache system cluster (hereinafter referred to as cluster), each of a plurality of serving nodes store a respective data copy of a same data. It is a hard issue to perform data backup and restoration on the plurality of serving nodes in the cluster. The core of the issue is how to perform the data backup and restoration and keep data consistency, data integrity and data uniform distribution under complex network environment of the clusters with consideration of performance differences between respective serving nodes.